package com.camemax.netty.nio;

import java.nio.IntBuffer;

// NIO模型核心组件Buffer（本质是一个数组），一个Buffer对应一个Channel（若干个Channel注册到Selector上，形成NIOServer）
// BIO跟NIO底层区别：
//   | --- BIO基于字节流与字符流进行数据的直接读写，会被阻塞。
//   | --- NIO基于Buffer与Channel进行数据的读写，实现NON-Blocking。
public class NIOBuffer {
    public static void main(String[] args) {
        // 1、 创建int类型的Buffer，size为5
        IntBuffer buffer = IntBuffer.allocate(5);

        // 2、 填充buffer
        for (int i = 0; i < 5; i++) {
            buffer.put(i * 2);
        }

        // 3、 调用filp()方法进行的【读写切换】，重置buffer下标
        buffer.flip();

        // 4、 调用hasRemaining()方法判断是否越界，越界为false
        while (buffer.hasRemaining()) {
            // 4.1、 遍历输出buffer元素
            System.out.println(buffer.get());
        }
    }
}
